#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLineEdit>

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWidget;
}
QT_END_NAMESPACE

class MainWidget : public QWidget
{
    Q_OBJECT

private:
    static MainWidget* instance;    // 当前指针指向当前类的唯一实例

    // 把它设置为私有的，对于单例模式，最重要的不是创建实例，而是限制别人创建实例
    MainWidget(QWidget *parent = nullptr);

// public:
//     static MainWidget* getInstance();



public:
    static MainWidget* getInstance();    // 获取当前实例
    // MainWidget(QWidget *parent = nullptr);
    ~MainWidget();

private:
    Ui::MainWidget *ui;

    // 窗口最左侧
    QWidget* windowLeft;
    // 窗口中间部分
    QWidget* windowMid;
    // 窗口右侧部分
    QWidget* windowRight;

    // 用户头像
    QPushButton* userAvatar;
    // 会话标签页按钮
    QPushButton* sessionTabBtn;
    // 好友标签页按钮
    QPushButton* friendTabBtn;
    // 好友申请标签页按钮
    QPushButton* applyTabBtn;

    // 搜索框
    QLineEdit* searchEdit;
    QPushButton* addFriendBtn;




    enum ActiveTab {
        SESSION_LIST,
        FRIEND_LIST,
        APPLY_LIST
    };

    ActiveTab activeTab = SESSION_LIST;

    void initMainWindow();
    void initLeftWindow();
    void initMidWindow();
    void initRightWindow();

    void initSignalSlot();

    void switchTabToSession();
    void switchTabToFriend();
    void switchTabToApply();


    void loadSessionList();
    void loadFriendList();
    void loadApplyList();





};
#endif // MAINWIDGET_H
